#pragma once

#include <stddef.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
  char **data;
  int len;
  int cap;
} StringArray;

void strarray_push(StringArray *a, char *s);

// printf 风格分配字符串，需 free
char *format(const char *fmt, ...);

// 打印错误并退出
void error(const char *fmt, ...);

// 跨平台 basename（不修改原字符串内容结构，返回指向传入缓冲区内部的指针）
char *basename(char *path);

#ifdef __cplusplus
}
#endif